﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PublisherDBModel;
using ServiceConsumer;

public partial class HoaDon_XacNhanHoaDon : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        int maHoaDon = -1;
        HoaDon hoaDon = null;
        try
        {
            maHoaDon = int.Parse(Request.Params.Get("maHoaDon"));
            hoaDon = DataProvider
                .entities.HoaDons.Where(hd => hd.MaHoaDon == maHoaDon).Single();
        }
        catch 
        {
            string message = "<p class='warning'>Hóa đơn không tồn tại !!!</p>";
            lbMessage.Text = message;
            return;
        }

        
        lbKhachHang.Text = hoaDon.KhachHang.TenTaiKhoan;
        lbMaHoaDon.Text = hoaDon.MaHoaDon.ToString();
        lbNgayLap.Text = hoaDon.NgayLapHoaDon.ToString();
        lbTongTien.Text = hoaDon.TongThanhTien.ToString() + " đồng";
        hfMaHoaDon.Value = maHoaDon.ToString();
        lbDiaChiKhachHang.Text = hoaDon.KhachHang.DiaChi;
        if (!IsPostBack)
        {
            Parameter para = new Parameter("maHoaDon", System.Data.DbType.Int32);
            para.DefaultValue = maHoaDon.ToString();
            SqlDataSourceChiTietHoaDon.SelectParameters.Clear();
            SqlDataSourceChiTietHoaDon.SelectParameters.Add(para);            
        }

        
    }
    protected void btXacNhan_Click(object sender, EventArgs e)
    {
        int maHoaDon = Int32.Parse(hfMaHoaDon.Value);
        HoaDon hoaDon = DataProvider
           .entities.HoaDons.Where(hd => hd.MaHoaDon == maHoaDon).Single();
        

        try
        {
            int soLuongSach = (int)hoaDon.ChiTietHoaDons.Sum(cthd => cthd.SoLuong);
            // dat lenh van chuyen
            string maDichVuVanChuyen = ddlNhaVanChuyen.SelectedValue;
            ReturnVC ketQuaVC = PaymentGetway.SetTransCommand(maDichVuVanChuyen,"277 nguyễn văn cừ", "hồ chí minh", "115 trần phú" , hoaDon.KhachHang.DiaChi, ddlDichVu.SelectedValue, soLuongSach);
            if (ketQuaVC.giaVanChuyen < 0)
                throw new Exception("Đặt lệnh vận chuyển thất bại !!! (Error Code: "+ ketQuaVC.giaVanChuyen +")");
            // thanh toan cho van chuyen
            int giaGoiChoVanChuyen = 1000;//(int) ketQuaVC.giaVanChuyen * 1000;
            string cardIdVC = "4024007175715357";
            int giaThanhToan = PaymentGetway.PayFor(ddlMoiGioi.SelectedValue, cardIdVC, giaGoiChoVanChuyen);

            string successString = "<p class='success'>";
            successString += "(*)Đặt lệnh vẫn chuyển thành công <br/>";            
            successString += "- Dịch vụ VC:" + ketQuaVC.tenVC + " <br/>";
            successString += "- Giá vẫn chuyển:" + ketQuaVC.giaVanChuyen * 1000 + " vnđ <br/>";
            successString += "- Mã vận chuyển :" + ketQuaVC.VCCode + " <br/>";
            successString += "- Track Link : <a href='" + ketQuaVC.trackLink + "'> " + ketQuaVC.trackLink + "</a><br/>";
            successString += "<br/>";
            successString += "(*) Chuyển tiền thành công <br/>";

            successString += "- Môi giới: " + ddlMoiGioi.SelectedValue + " <br/>";
            successString += "- Card ID nhận: " + cardIdVC + " <br/>";
            successString += "- Số tiền: " + giaThanhToan + " vnđ <br/>";
            
            successString += "</p>";

            
            hoaDon.DaThanhToan = 1;
            DataProvider.entities.SaveChanges();

            lbMessage.Text = successString;
        }
        catch(Exception ex)
        {
            string errorString = "<p class ='warning'> ";
            errorString += ex.Message;
            errorString += "</p>";
            lbMessage.Text = errorString;
        }
        


        
        
    }


}